package dao;

import java.util.Vector;
import entidades.Provincia;

/**
 * Clase de la capa de Persistencia, encargada de recuperarProvincias
 * de la base de datos.
 */
public class DAOProvincia extends DAO {

    /**
     * Retorna el vector de objetos Provincia cargados en la base de datos.
     *
     * @return El vector de objetos Provincia
     */
    public static Vector<Provincia> getAll() {
        return getAll("Provincia");
    }

    /**
     * Obtiene las provincias que satisfacen la consulta espeificada
     * 
     * @param query     Consulta con las condiciones que se desea satisfacer
     * 
     * @return Vector   Provincias que satisfacen la consulta
     */
    public static Vector<Provincia> get(String query) {
        return getAll(query);
    }

    /**
     * Obtiene la primer Provincia que satisfaga el nombre especificado
     * @param Nombre String     Nombre de la provincia
     * @return       Provincia  Provincia que posee el nombre especificado
     */
    public static Provincia getByNombre(String Nombre) {
        Vector<Provincia> provincia = get("Provincia where nombre = '"+Nombre+"'");
        
        if(!provincia.isEmpty()) {
            return provincia.get(0);
        }
        else {
            return null;
        }   
    }
        
    /**
     * Obtiene la Provincia a partir de su id
     * @param id int        Id de la Provincia
     * @return   Provincia  Provincia con el id especificado
     */
    public static Provincia getById(int id) {
        Vector<Provincia> provincia = get("Provincia where idProvincia= '"+id+"'");
        
        if(!provincia.isEmpty()) 
            return provincia.get(0);

        return null;
    }
        
    /**
     * Lista de nombres de todas las provincias
     * 
     * @return Vector   Nombres de todas las provincias
     */
    public static Vector<String> getAllNombres() {
        Vector<String> nombres = new Vector();
        Vector<Provincia> provincias = getAll();
        
            nombres.add("Provincia");
        for(int i = 0; i<provincias.size(); i++)
            nombres.add(provincias.get(i).getNombre());

        return nombres;
    }
}
